package tpo.vista.empleados;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import tpo.controlador.Sistema;

public class AltaCliente extends JFrame {
	
	private Sistema sistema;
	
	public AltaCliente(Sistema sistema) {
		super("Alta Cliente");
		this.sistema = sistema;
		init();
		setVisible(true);
	}

	private void init() {
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		setLayout(new GridBagLayout());
		GridBagConstraints gc = new GridBagConstraints();
		
		JLabel labelNombre = new JLabel("Nombre");
		JLabel labelApellido = new JLabel("Apellido");
		JLabel labelDomicilio = new JLabel("Domicilio");
		JLabel labelTelefono = new JLabel("Telefono");
		JLabel labelDNI = new JLabel("DNI");
		JLabel labelSexo = new JLabel("Sexo");
		JLabel labelNacionalidad = new JLabel("Nacionalidad");
		JLabel labelFechaNacimiento = new JLabel("Fecha Nacimiento (dd/mm/yyyy)");
		final JTextField fieldNombre = new JTextField("");
		final JTextField fieldApellido = new JTextField("");
		final JTextField fieldDomicilio = new JTextField("");
		final JTextField fieldTelefono = new JTextField("");
		final JTextField fieldDNI = new JTextField("");
		final JTextField fieldSexo = new JTextField("");
		final JTextField fieldNacionalidad = new JTextField("");
		final JTextField fieldFechaNacimiento = new JTextField("");
		JButton button = new JButton("Agregar");
		
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evento) {
				try {
					SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
					Date fechaNacimiento = sdf.parse(fieldFechaNacimiento.getText());
					sistema.registrarCliente(fieldNombre.getText(),
							fieldApellido.getText(), fechaNacimiento,
							fieldDomicilio.getText(), fieldTelefono.getText(),
							fieldDNI.getText(), fieldSexo.getText(),
							fieldNacionalidad.getText());
					dispose();
					System.out.println("Se ha creado el cliente con nombre: " + fieldNombre.getText());
				} catch (Exception e) {
					System.out.println("Error al dar de alta cliente.");
					e.printStackTrace();
				}
			}			
		});
		
		gc.gridx = 0;	// Columna
		gc.gridy = 0;	// Fila
		add(labelNombre, gc);		
		gc.gridx = 1;
		gc.gridy = 0;
		fieldNombre.setColumns(10);
		add(fieldNombre, gc);
		
		gc.gridx = 0;
		gc.gridy = 1;
		add(labelApellido, gc);		
		gc.gridx = 1;
		gc.gridy = 1;
		fieldApellido.setColumns(10);
		add(fieldApellido, gc);
		
		gc.gridx = 0;
		gc.gridy = 2;
		add(labelDomicilio, gc);		
		gc.gridx = 1;
		gc.gridy = 2;
		fieldDomicilio.setColumns(10);
		add(fieldDomicilio, gc);
		
		gc.gridx = 0;
		gc.gridy = 3;
		add(labelTelefono, gc);		
		gc.gridx = 1;
		gc.gridy = 3;
		fieldTelefono.setColumns(10);
		add(fieldTelefono, gc);
		
		gc.gridx = 0;
		gc.gridy = 4;
		add(labelDNI, gc);		
		gc.gridx = 1;
		gc.gridy = 4;
		fieldDNI.setColumns(10);
		add(fieldDNI, gc);
		
		gc.gridx = 0;
		gc.gridy = 5;
		add(labelSexo, gc);		
		gc.gridx = 1;
		gc.gridy = 5;
		fieldSexo.setColumns(10);
		add(fieldSexo, gc);
		
		gc.gridx = 0;
		gc.gridy = 6;
		add(labelNacionalidad, gc);		
		gc.gridx = 1;
		gc.gridy = 6;
		fieldNacionalidad.setColumns(10);
		add(fieldNacionalidad, gc);
		
		gc.gridx = 0;
		gc.gridy = 7;
		add(labelFechaNacimiento, gc);
		gc.gridx = 1;
		gc.gridy = 7;
		fieldFechaNacimiento.setColumns(10);
		add(fieldFechaNacimiento, gc);
		
		gc.gridx = 0;
		gc.gridy = 8;
		add(button, gc);

		pack();
		setSize(400, 300);
	}
}
